The present application relates to integrated circuits, and particularly to data modules and their controllers which are capable of handling multiple interface standards.
One of the basic requirements of many portable electronics applications is some sort of way to measure time delays. In some applications timestamps are available from a system interface or external data stream, but in many other applications this is not possible. Fixed systems can obtain timing information from a powerline grid, but this too is impossible for some portable systems.
An odd number of inverters connected in a ring will oscillate, and digital inverters which have more complex topologies are also sometimes referred to as ring oscillators (or, more precisely, as free-running oscillators). Many designs have used a so-called ring oscillator as a crude timing reference. However, a problem with ring oscillators is that their speed is affected by a variety of device parameters, including e.g. threshold voltage, gain, saturated current density, and variations in the relative strength of N-channel and P-channel devices. Thus unavoidable variations in process parameters can result in significant variations in the speed of a ring oscillator.
The uncertainty due to process variation does not stand alone. Temperature and supply voltage variation also can have a great effect on the oscillator frequency. Since these variations too are unpredictable, the total variation across the relevant set of parameters can be large, e.g. 3:1 or more.
Thus ring oscillators are helpful for a minimal reference, but do not offer enough accuracy for many applications.
One area where all these problems converge is in portable memory modules. As discussed below, the control logic in a portable module must be able to measure some timing windows to judge whether a host interface is operational. In a multicompatible module, the problem can be even worse.
One of the conventional ways to get timing information is with a crystal-controlled oscillator. However, crystal oscillators have some significant disadvantages over digital oscillators. Crystal oscillators require use of a discrete component which, although inexpensive, complicates system integration. Ring oscillators can be dropped into a digital design anywhere, without requiring an analog process. Ring oscillators can easily be started, stepped, or stopped, unlike crystal oscillators.